The current simplification mode controls how numbers and formulas are “normalized” when being taken from or pushed onto the stack. Some normalizations are unavoidable, such as rounding floating-point results to the current precision, and reducing fractions to simplest form. Others, such as simplifying a formula like ‘a+a’ (or ‘2+3’), are done by default but can be turned off when necessary.
When you press a key like + when ‘2’ and ‘3’ are on the stack, Calc pops these numbers, normalizes them, creates the formula ‘2+3’, normalizes it, and pushes the result. Of course the standard rules for normalizing ‘2+3’ will produce the result ‘5’.
Simplification mode commands consist of the lower-case m prefix key followed by a shifted letter.
The m
O (calc-no-simplify-mode) command turns off
all optional simplifications. These would leave a formula like
‘2+3’ alone.
In fact, nothing except simple numbers are ever affected by
normalization in this mode.
The m
N (calc-num-simplify-mode) command turns off
simplification of any formulas except those for which all
arguments are constants. For example, ‘1+2’ is simplified to
‘3’, and
‘a+(2-2)’ is
simplified to ‘a+0’ but no further, since one
argument of the sum is not a constant. Unfortunately,
‘(a+2)-2’ is
not simplified because the top-level
‘-’ operator's
arguments are not both constant numbers (one of them is the
formula ‘a+2’). A constant is a number or other
numeric object (such as a constant error form or modulo form), or
a vector all of whose elements are constant.
The m
D (calc-default-simplify-mode) command
restores the default simplifications for all formulas. This
includes many easy and fast algebraic simplifications such as
‘a+0’ to
‘a’, and
‘a + 2 a’ to
‘3 a’, as well
as evaluating functions like
‘deriv(x^2,
x)’ to ‘2
x’.
The m
B (calc-bin-simplify-mode) mode applies the
default simplifications to a result and then, if the result is an
integer, uses the b c (calc-clip) command
to clip the integer according to the current binary word size.
See Binary
Functions. Real numbers are rounded to the nearest integer
and then clipped; other kinds of results (after the default
simplifications) are left alone.
The m
A (calc-alg-simplify-mode) mode does algebraic
simplification; it applies all the default simplifications, and
also the more powerful (and slower) simplifications made by
a s (calc-simplify). See Algebraic
Simplifications.
The m
E (calc-ext-simplify-mode) mode does
“extended” algebraic simplification, as by the a
e (calc-simplify-extended) command. See
Unsafe
Simplifications.
The m
U (calc-units-simplify-mode) mode does units
simplification; it applies the command u s
(calc-simplify-units), which in turn is a superset
of a s. In this mode, variable names which are
identifiable as unit names (like ‘mm’ for “millimeters”) are
simplified with their unit definitions in mind.
A common technique is to set the simplification mode down to
the lowest amount of simplification you will allow to be applied
automatically, then use manual commands like a s and
c c (calc-clean) to perform higher types
of simplifications on demand. See Algebraic
Definitions, for another sample use of No-Simplification
mode.